package com.py.credit.service;

import com.py.credit.common.Page;
import com.py.credit.common.rest.RestServiceResult;
import com.py.credit.entity.Feedback;

import java.sql.Timestamp;
import java.util.LinkedHashMap;
import java.util.List;

public interface PluginApiService {

    /**
     * 检查用户名和密码是否正确，并返回用户id
     * @param username
     * @param password
     * @return
     */
    RestServiceResult<Long> checkLogin(String username, String password);

    /**
     * 获取用户信息
     * @param userId
     * @return
     */
    RestServiceResult<LinkedHashMap> getUserInfo(String userId);

    /**
     * 获取奖惩企业列表
     * @param deptId
     * @param ztmc
     * @return
     */
    List<LinkedHashMap> getDeptAjbhList(String deptId,String ztmc);

    /**
     * 获取企业信息
     * @param ztmc
     * @return
     */
    RestServiceResult<LinkedHashMap> getCompanyInfo(String ztmc);

    /**
     * 查询企业标签
     * @return
     */
    String getLabel(String deptId,String ztmc,String jclb);

    /**
     * 获取措施列表
     * @param deptId
     * @return
     */
    List<LinkedHashMap> getCsList(String deptId, String label,String jclb);

    String selectAjbhByCsIdAndZtmc(String deptId,String csId, String ztmc,String jclb);

    /**
     * 添加反馈信息
     * @param userId
     * @param deptId
     * @param ajbh
     * @param feedbackTime
     * @param mess
     * @return
     */
    int insertFeedbackInfo(long userId, long deptId, String ajbh, Timestamp feedbackTime, String mess,String batchId,String managerName);

    void insertFeedbackCs(int feedbackId,String csId,String batchId);

    void modifyMess(Timestamp feedbackTime,String ajbh);

    /**
     * 查询所有url
     * @param userId
     * @return
     */
    List<String> selectAllUrl(long userId);

    /**
     * 分页查询url列表
     * @param userId
     * @return
     */
    List<LinkedHashMap> selectUrlForPage(long userId,Page page);

    /**
     * 新增url
     * @param urlName
     * @param url
     */
    void insertUrl(String urlName,String url,long userId);

    /**
     * 修改url
     * @param urlName
     * @param url
     * @param status
     * @param delFlag
     * @param id
     */
    void modifyUrl(String urlName,String url,String status,String delFlag,String id);

    /**
     * 分页查询惩戒和激励企业列表
     * @param deptId
     * @param ztmc
     * @param jclb
     * @param page
     * @return
     */
    List<LinkedHashMap> selectJcListForPage(String deptId,String ztmc,String jclb,Page page,String startTime, String endTime);

    /**
     * 查询惩戒和激励企业详情
     * @param ztmc
     * @param jclb
     * @return
     */
    List<LinkedHashMap> selectJcDetail(String ztmc,String jclb,String label);

    /**
     * 分页查询反馈列表
     * @param deptId
     * @param ztmc
     * @param page
     * @return
     */
    List<LinkedHashMap> selectFeedbackListForPage(String deptId,String ztmc,Page page,String jclb,String status,String startTime, String endTime);

    /**
     * 查询反馈详情
     * @param ztmc
     * @param jclb
     * @return
     */
    List<Feedback> selectFeedbackDetail(String ztmc, String jclb, String label);

    void insertApiLog(long userId,String ztmc,String bm,String ipaddress);

    int selectUserGrade(long userId);
}
